Skip to content

Notebook redesign 4: each step fits a laptop screen; Compare groups in the run step - #273

Closed
guijacquemet wants to merge 4 commits into
mainfrom
claude/redesign-4-compact
Closed

guijacquemet wants to merge 4 commits into
mainfrom
claude/redesign-4-compact

Conversation

@guijacquemet

Copy link
Copy Markdown
Contributor

Fourth of four stacked pull requests (base: #271). Owner's test of v0.5.0, items (a) "each step fits one laptop screen" and (b) "remove step 4, Calculate the statistics", and "Design should be simple and minimalistic". Layout only: no answer, check, refusal, draft, description or run output changes. Design note: docs/restart/designs/notebook-redesign-2026-11-10.md on MorphoFeature branch claude/restart-doc.

Summary

  • notebook_stepper: the strip is one row (short chip names from notebook_compact.CHIPS: Images, Compared to, Tags, Save, Describe masks; the page keeps the full title); a step's title and purpose are one line; its cards are in a box (mb-step-body) that scrolls by itself when they are higher than the screen, so the title, the strip and Back/Next stay in view. Denser cards, tiles, tables, buttons and pictures under the mb-compact class (the stacked pages of other bricks are untouched). about() folds a step's explanation under About this step; a card's help paragraph is one line that opens when pointed at. field_rows() lays out labelled input rows.
  • notebook_compact (new): the Images step has one Folders card (three rows), Scan the folders and Looks right: read all image headers side by side with the progress under them; after the check the scan makes way for the result, and the pictures per folder, the check report and Exclude images are collapsed panels. The Run step shows Before you run only while something is missing, with Settings and mode and What will happen collapsed; after a run the intensity checks and plots, Compare groups and the report are collapsed panels.
  • Compare groups replaces the optional statistics page in the shipped notebook: the grouping, the percentiles, the pooled statistics and the distribution plot of the table this run wrote; no table to choose, and the intensity checks are not run a second time (_compare_only). results_step() after steps() returns an empty hidden box, so the shipped notebook's code cell needs no change; called without steps() it is the page it was.
  • notebook_render.issues_brief_html: a refusal of the axis roles is one sentence with Files and what to do on demand, e.g. "Error · different channel counts: The images have different numbers of channels: 3 channels (10 images), 4 channels (4 images)."
  • welcome() is one line (name, version, "the notebook is ready").
  • Docs: user guide §4 gains "The app in short (v0.5.1)"; AGENTS.md (repository map, the three new rules: waits, disabled actions, one screen per step); the notebook's Markdown cells (cell 3's list and one bullet of the title cell) describe the new flow. Code cells, RELEASE_REF and RELEASE_TAG are untouched.

Decisions

  • One screen is reached with a step body that scrolls by itself (max-height: max(480px, 98vh - 196px)), not by removing content: steps whose content grows with the experiment (replicates, image type, tags, check and save) scroll inside the page.
  • Mixed channel counts stay refused (different_channel_counts; Spec Stage 1-2); the refusal is shorter and names its files on demand.
  • Steps 3 to 10 keep "one type of information per step" (owner, 9 November); they get the dense style, not new cards.

Notes for review

  • Screenshots (same synthetic data before and after: 2 conditions x 3 biological repeats x 2-3 technical repeats, 28 images of 2048 x 2048, 3 channels; a variant with one repeat of 4 channels): all 32 rendered states of the app are 768 px high at 1366 x 768 and 1080 px at 1920 x 1080; before, the shortest page was 1,459 px and the longest 6,020 px. Rendered from real widget state in headless Chromium; not looked at in Google Colab or JupyterLab, where the notebook's own toolbar takes part of the screen.
  • Outputs unchanged: the same answers on main and on this branch, with the same input folders, give byte-identical morphobricks.toml, plane_histograms.csv, experiment_design.csv and mask_relationships.json, and a run_manifest.json that differs only in the output folder's path.
  • The shipped notebook file still installs RELEASE_REF (v0.5.0): its Markdown describes the redesigned app, which it opens once the v0.5.1 release moves the pin.
  • The help line that opens when pointed at needs a pointer; on a touch screen it stays one line (the step's About this step has the long text for steps 1, 2, 9 and 10 only).
  • The old statistics page (table chooser, second intensity check) still exists for results_step() without steps(); removing it is a follow-up if no brick shows it.

Tests

python tools/check.py on the head: see the comment below for the numbers. New: tests/test_notebook_compact.py (10): the chip names and the one-row budget, the page structure, the folded explanations, the Folders card, the panels after the check, the hidden statistics page and one-line welcome, the short refusal, the run step's panels, Compare groups (collapsed, this run's table, no second intensity check, the same statistics and plot as the old page).


Generated by Claude Code

…tep; the app in short in the guide

Owner test of v0.5.0 (10 November 2026), items (a) and (b).

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
…n's picture keeps its size

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc

Copy link
Copy Markdown
Contributor Author

Gate: python tools/check.py on 0a1885b: Ruff and the code rules pass; 5240 passed, 4 skipped (test_cli_log.py:166, test_folder_rules.py:199 and :230: a file system that tells names apart by case; test_discovery.py:665: running with permissions that ignore file modes).

The stack is #269, #270, #272, #273 (this); the base of this pull request is #272 (the description says #271 by mistake).

🤖 Generated with Claude Code

https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc


Generated by Claude Code

…compact

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
…laude/redesign-4-compact

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
Base automatically changed from claude/redesign-3-axes to main November 10, 2026 19:24

Copy link
Copy Markdown
Contributor Author

Left open on purpose. The owner tested it in Colab and found the step body that scrolls inside its own fixed-height box worse than normal page scrolling, so a follow-up will rework this PR: the page scrolls normally, and the compactness comes from less text and collapsed details. #269, #270 and #272 are merged, and this PR now targets main. Its head 5572326 has the Use for all images confirmation from #272 merged in. On that head, the Compare groups panel gives the same statistics HTML as the old statistics page for the same table.

🤖 Generated with Claude Code

https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc


Generated by Claude Code

Copy link
Copy Markdown
Contributor Author

Closed in favour of #275 and #276, after the owner's test of this redesign (10 November 2026).

The commits of this branch are in #275's history.


Generated by Claude Code

@guijacquemet
guijacquemet deleted the claude/redesign-4-compact branch November 14, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants